interface LoginForm {
  name?: string;
  password?: string;
  email?: string;
}

interface RegisterForm {
  name: string;
  password: string;
  code: string;
  email: string;
  repeatPassword: string;
}

interface UserState {
  token?: string;
  userInfo?: UserInfo;
  userDetailInfo?: UserDetailInfo;
  unreadMessageCount: number;
}

interface UserInfo {
  id: number;
  uid: number;
  name: string;
  email: string;
  avatar: string;
  phone?: string;
  description?: string;
  signature?: string;
  indexBg?: string;
  createTime?: Date;
  updateTime?: Date;
}

interface UserDetailInfo {
  name: string;
  avatar: string;
  postCount: number;
  followCount: number;
  followersCount: number;
  eachFollow: number;
  description: string;
}

interface UserInfoForm {
  name?: string;
  email?: string;
  phone?: string;
  description?: string;
  hobbies?: string;
  avatar?: string;
  avatarFile?: File;
  indexBg?: string;
  indexBgFile?: File;
}

interface Follow {
  id: number;
  uid: number;
  name: string;
  description: string;
  avatar: string;
}

interface Fans {
  id: number;
  uid: number;
  name: string;
  description: string;
  avatar: string;
}
